package com.example.tdam_2012_g3;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import entidades.ContactoAndroid;
import entidades.Log;
import entidades.ShellSort;
import Adaptadores.AdaptadorListaContactos;
import Adaptadores.AdaptadorListaLog;
import Persistencia.CreadorBD;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.app.Activity;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.view.Menu;
import android.view.MenuItem;

public class ActivityLog extends ListActivity {
    public AdaptadorListaLog adaptador;
    CreadorBD base ;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_log);
        base = new CreadorBD(this);
        adaptador = new AdaptadorListaLog(this);
        this.cargarAacciones();
        setListAdapter(adaptador);
        
    }
    public void onResume(){
    	super.onResume();
    	this.cargarAacciones();
    	this.ordernarLog();
    	  setListAdapter(adaptador);
    	
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_activity_log, menu);
        return true;
    }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
         case R.id.menu_log_settings:
        	 startActivity(new Intent(ActivityLog.this, ActivityPreferenciaLog.class));
        	 return true;
        	
         default:
             return super.onOptionsItemSelected(item);
     }
 }
 
 public void cargarAacciones(){

SharedPreferences myPreference=PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());	
String faccion = "";
String fusuario= "%";
String ffecha = "";
String fecha = myPreference.getString("fecha_log", this.obtenerFechaActualMasUno());
String accion = myPreference.getString("logAccion", Log.CALL);
String usuario = myPreference.getString("logUsuario", "").trim().toLowerCase();
if(!usuario.equals("")){
	fusuario=usuario+"%";
}
if(!accion.equals("T")){
	faccion= accion;
}

if(fecha.compareTo(this.obtenerFechaActual())<1){
	ffecha=fecha;
	
}
	adaptador.setListaDeAcciones(base.obtenerAcciones(faccion,fusuario,ffecha));
	adaptador.notifyDataSetChanged();
	    
}
 
 public String obtenerFechaActualMasUno(){
	  // Date dt = new Date();
	 Calendar cal = new GregorianCalendar();
	 cal.add(Calendar.DATE, 1);
	 
	 Date fechaActual = cal.getTime();
	 
	    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

	    String formatteDate = df.format(fechaActual);

	    return formatteDate;
 }
 public String obtenerFechaActual(){
	 Calendar cal = new GregorianCalendar();
	 Date fechaActual = cal.getTime();
	 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
     String formatteDate = df.format(fechaActual);
     return formatteDate;
}
 

 public void ordernarLog(){
 	SharedPreferences myPreference=PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
 	boolean ascendente = myPreference.getBoolean("logAscendente", true);
 	String criterio = myPreference.getString("criterioOrdenamiento", ShellSort.CRITERIO_CONTACTO );
 
 		adaptador.sortAccion(ascendente, criterio);     
 		adaptador.notifyDataSetChanged();
      	
 }
 


}
